package com.hao.product.app.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hao.product.app.model.dto.product.ProductAddRequest;
import com.hao.product.app.model.dto.product.ProductQueryRequest;
import com.hao.product.app.model.dto.product.ProductUpdateRequest;
import com.hao.product.app.model.entity.Product;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hao.product.app.model.vo.ProductVO;

/**
* @author haoge
* @description 针对表【product(商品)】的数据库操作Service
* @createDate 2023-05-22 15:52:44
*/
public interface ProductService extends IService<Product> {

    /**
     * 添加商品
     * @param productAddRequest
     * @return
     */
    boolean addProduct(ProductAddRequest productAddRequest);

    /**
     * 修改商品
     * @param productUpdateRequest
     * @return
     */
    boolean updateProduct(ProductUpdateRequest productUpdateRequest);

    /**
     * 分页查询商品
     * @param productQueryRequest
     * @return
     */
    Page<ProductVO> listByPage(ProductQueryRequest productQueryRequest);

    /**
     * 扣减库存
     * @param id
     * @param count
     * @return
     */
    boolean decreaseProductStock(Long id, Integer count);
}
